Various business entities, such as companies, store information electronically in furtherance of their business needs. These companies may have extensive databases of information that include customer tables, supplier tables, employee tables, and so on. The schemas and data models associated with these databases may be customized to help meet the business needs of the company. For example, an automotive manufacturer may organize information about its customers in a way that is very different from the way that an online bookstore may organize information about its customers. Even within a single company, that company may use many different application programs that employ very different schemas and data models. For example, a customer relationship management application program may use a data model that is very different from the data model used by an accounting program. The use of customized data models by a company and by applications within the company has the advantage of allowing information to be modeled in a way that is appropriate for the business needs of the company. Unfortunately, because of this diversity in the data models, it is not easy for the company to share its information with other companies or for applications to share their information.
The financial industry has been plagued by data models for financial information that are customized to individual financial institutions and thus make it difficult for financial institutions to share information. For example, major credit reporting services provide their credit reports in very different formats and with very different types of information. As a result, credit reports from different reporting services are typically stored in a raw format without any schema or data structure associated with the reports. Thus, the financial institutions that receive these credit reports cannot effectively automate the processing of the information on the credit reports. As another example, financial institutions may use very different models to store data relating to applications for different types of financial products (e.g., loan applications, brokerage account applications, and checking account applications). The data models for these applications are typically customized to support the “standard” applications electronically, but they cannot accommodate “non-standard” applications electronically. In addition the application models for different types of applications may be customized to each type of application. As an example, a financial institution may have a loan application data model and a separate checking account application data model. As described above, such diversity in application data models makes it difficult for financial institutions and financial application programs to share financial information.
Various attempts have been made to define standard data models so that information can be more easily shared between companies and applications. For example, the Open Applications Group has defined a standard data model that can be used by companies and applications when sharing information. A problem with these data models is that they do not provide effective ways to model relationships between various parties, such as a person or a company. In addition, if a company or an application developer wants to customize the standard data model, the customized data model may not be compatible with future upgrades of the standard data model. It would be desirable to have a data model that would more effectively model relationships and facilitate the upgrading of customizations of the data model.